﻿/*
删最多元素 
Time Limit:1000MS  Memory Limit:32768K

  
Description:
对于输入的每个字符串，查找其中个数最多的字母，并在该字符串中删除所有该字母。

Input:
输入数据包括多个测试实例，每个实例由一行长度不超过100的字符串组成，字符串仅由大小写字母构成。 
Output:
对于每个测试实例输出一行字符串，输出的结果是删除个数最多的字母后的字符串，
如果存在多种个数最多的字母，就将这些个数最多的字母都删去。
如果删除后字符串为空，则输出“NULL”。注意，'A'和'a'是不同的字母。 
Sample Input:
aaabcc
xxyyz
defgh
Sample Output:
bcc
z
NULL
*/
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

const unsigned size=52;
struct AlphaCount{
public:
	unsigned index;
	unsigned length;
public:
	AlphaCount():index(0u), length(0u)
	{
	}
	static unsigned toIndex(char c)
	{
		unsigned ret=c-'A';
		if(c>='a' && c<='z')
			ret-=6u;
		return ret;			
	}
	static char toAscii(unsigned index)
	{
		if(index>=26)
			index+=6;
		return (int)(index)+'A';
	}
	char getChar()
	{
		return toAscii(index);
	}
	friend bool compare(const AlphaCount & ac1, const AlphaCount & ac2)
	{
		return ac1.length<ac2.length;
	}
	friend ostream& operator << (ostream& os, const AlphaCount & ac)
	{
		os<<toAscii(ac.index)<<":"<<ac.length;
		return os;
	}
};
int main()
{


	for (string str; cin>>str;)
	{
		AlphaCount letters[size];
		for (string::size_type i=0, length=str.length(); i<length; ++i)
		{
			//int index=str[i]-'A';
			unsigned index=AlphaCount::toIndex(str[i]);
			letters[index].index=index;
			letters[index].length++;
		}
		sort(letters, letters+size, compare);

 		unsigned lo=lower_bound(letters, letters+size, letters[size-1], compare)-letters;

		while (lo<size)
		{
			string::iterator pos=remove(str.begin(), str.end(), letters[lo].getChar());
			str.erase(pos, str.end());
			lo++;
		}
		if(str.empty())
			cout<<"NULL"<<endl;
		else
			cout<<str<<endl;
	}

	return 0;
}
